package algorithm.dfs;

import algorithm.TreeNode;

/**
 * @author cyt
 * @create 2020-08-25 19:38
 */
public class T513 {

    public static void main(String[] args) {

    }

    /**
     * 给定一个二叉树，在树的最后一行找到最左边的值。
     */
    int min = Integer.MIN_VALUE;
    int ans = 0;
    public int findBottomLeftValue(TreeNode root) {
        dfs(root, 0);
        return ans;
    }

    public void dfs(TreeNode root, int depth) {
        if (root == null) {
            return;
        }
        if (root.right == null && root.left == null) {
            if (min < depth) {
                min = depth;
                ans = root.val;
            }
        }
        dfs(root.left, depth + 1);
        dfs(root.right, depth + 1);
    }

    /**
     *         1
     *        / \
     *       2   3
     *      /   / \
     *     4   5   6
     *        /
     *       7
     */
}
